﻿namespace DCHealthCheck.MvcWeb.Classes.ViewModels {

    #region Usings
    using DCHealthCheck.DomainModel;
using System;
using System.Collections.Generic;
using System.Web.Mvc; 
    #endregion

    public interface IBaseViewModel {

        string ActionName { get; set; }
        string ADSite { get; set; }
        List<SelectListItem> ADSiteSelectListItems { get; }
        string ControllerName { get; set; }
        System.Web.Helpers.SortDirection? CurrentSortDirection { get; set; }
        DateTime Date { get; set; }
        string DCName { get; set; }
        List<SelectListItem> DCNameSelectListItems { get; }
        bool DisplayDownloadLink { get; }
        int DisplayIntervalEnd { get; }
        int DisplayIntervalStart { get; }
        int DisplayTotalResults { get; set; }
        string Domain { get; set; }
        Guid DomainControllerId { get; set; }
        List<SelectListItem> DomainSelectListItems { get; }
        DateTime? EndDate { get; set; }
        string OSVersion { get; set; }
        List<SelectListItem> OSVersionSelectListItems { get; }
        string ProcessExecutable { get; set; }
        List<SelectListItem> ProcessExecutableSelectListItems { get; }
        int? SkipCount { get; set; }
        string SortColumn { get; set; }
        DateTime? StartDate { get; set; }
        Guid SystemInfoId { get; set; }
        int? TakeCount { get; set; }
        int UtcOffsetMinutes { get; set; }

        bool IsNotFilteredDomainController(DomainController domainController);
        void GetPageCounts(int collectionCount);
        MvcHtmlString GetSortColumnLink(string action, string controller, HtmlHelper htmlHelper, string linkText, string linkTitle, string sortColumn);
        MvcHtmlString GetSortColumnLink(string action, string controller, HtmlHelper htmlHelper, string linkText, string linkTitle, string sortColumn, int? skipCount);
        MvcHtmlString GetSortColumnLink(string action, string controller, HtmlHelper htmlHelper, string linkText, string linkTitle, string sortColumn, int? skipCount, System.Web.Helpers.SortDirection? defaultSortDirection);
        MvcHtmlString GetSortColumnLink(HtmlHelper htmlHelper, string linkText, string linkTitle);
        MvcHtmlString GetSortColumnLink(HtmlHelper htmlHelper, string linkText, string linkTitle, string sortColumn);
        void Initialize();
    }
}
